Mathematical and computational software applications may allow users to manipulate expressions and algorithms symbolically, including performing symbolic math operations. Symbolic math operations may include, for example, calculus operations, linear algebra operations, solutions of equations, expression simplification, expression evaluation, differentiation, integration, root-finding, etc.
Mathematical and computational software applications may conventionally supply at least one library of software programs, called a symbolic math engine, to perform symbolic math operations.
A symbolic math engine may have a specific language and/or syntax used to send commands to the symbolic math engine. This unique language and/or syntax may mean that switching from one symbolic math engine to another symbolic math engine to solve the same expression may require rewriting one or more lines of code. For example, solving the equation x2=2 for the value of variable x via a first symbolic math engine may require the syntax “allvalues(solve({x^2=2},x)).” Solving the same equation via a second symbolic math engine may require the syntax “solve([x^2=2],[x],PrincipalValue).” Further, first and second symbolic math engines may return their respective solutions in different formats or data types, which may require correctly anticipating the return format or data type. For example, one symbolic math engine may return a list of floating point numbers, while another symbolic math engine may return an array of floating point numbers.